#include <reg52.h>  // 包含51单片机寄存器定义头文件

// 延时函数，用于控制跑马灯的速度
void Delay(unsigned int t) {
    unsigned int i, j;
    for (i = t; i > 0; i--)
        for (j = 110; j > 0; j--);
}

void main() {
    unsigned char LED = 0x01;  // 初始状态，第一个LED亮
    unsigned char dir = 1;     // 方向控制，1表示左移，0表示右移
    
    while (1) {
        P1 = ~LED;  // 输出到P1口，取反是因为共阳极LED低电平点亮
        
        if (dir) {
            LED <<= 1;  // 左移
            // 当移动到最左边时改变方向
            if (LED == 0x80) dir = 0;
        } else {
            LED >>= 1;  // 右移
            // 当移动到最右边时改变方向
            if (LED == 0x01) dir = 1;
        }
        
        Delay(500);  // 延时，控制跑马灯速度
    }
}